package me;


/**
 * 维吉尼亚密码，单词提示
 * 密文：cipher
 * 明文：Plain
 * 密钥：key
 *
 * @author Rainh
 * */
public interface Virginia {

    /**
     * 将明文转换成int数组
     * */
    public int[] plainToInts(String plain);

    /**
     * 将密文转换成int数组
     * */
    public int[] cipherToInts(String cipher);

    /**
     * 将密钥转换成int数组
     * */
    public int[] keyToInts(String key);

    /**
     * 明文加密算法的实现，通过密钥数组将明文数组加密成密文数组
     * **/
    public char[] plainToCipherByKey(int[] plains,int[] keys);

    /**
     * 密文加密算法的实现，通过密钥数组将密文数组解密成明文数组
     * **/
    public char[] cipherToPlainByKey(int[] cipher,int[] keys);

    /**
     * 将明文密文数组转换成字符串打印输出
     * */
    public String getResults(char[] chars);

    /**
     * 将明文转换成密文的方法
     * */
    public void getCipherByPlainAndKey(String plain,String key);

    /**
     * 将密文转换成明文的方法
     * */
    public void getPlainByCipherAndKey(String cipher,String key);

}


